package implementation.client;

import implementation.shared.stubs.IForumStub;
import implementation.shared.stubs.IPostStub;
import implementation.shared.stubs.IThreadStub;
import implementation.shared.stubs.IUserStub;
import implementation.shared.INotification;

import java.io.IOException;
import java.util.Collection;


public interface IUI {
	
	void showMainScreen(IUserInput userInput) throws IOException;
	
	void showProfile (IUserInput userInput);
	
	void showLogin(IUserInput userInput) throws IOException ;
	
	void showRegister(IUserInput userInput) throws IOException  ;
	

	
	void showForumList(IUserInput userInput, Collection<IForumStub> _forums);
	
	void showForum(IUserInput userInput, Collection<IThreadStub>  forum) throws IOException;
	
	void showThread(IUserInput userInput, Collection<IPostStub> thread);

	void showPost(IUserInput userInput,IPostStub post);
	
	void showAddPost(IUserInput userInput) throws IOException ;
	
	void showAddThread(IUserInput userInput) throws IOException ;

		
	
	void showAddFriend(IUserInput userInput) throws IOException ;
	
	void showRemoveFriend(IUserInput userInput, Collection<IUserStub> friendList) throws IOException ;
	
	void showFriends(IUserInput userInput, Collection<IUserStub> userList) throws IOException;
	
	
	void showClientSideError(String error);	
	
	void showClientSideMessage(String msg);
	
	
	void showUserChoise();

	void showNotification(INotification n);
	
	
}
